package it.koutifaris.travianmap.ui;

import it.koutifaris.travianmap.map.WorldMap;
import it.koutifaris.travianmap.ui.theme.WorldMapTheme;
import it.koutifaris.travianmap.ui.viewstate.DynamicViewState;

public interface WorldMapViewInizializer {

	StepMap startInitialing();

	interface StepMap {
		StepTheme withMap(WorldMap map);
	}

	interface StepTheme {
		StepInitialState withTheme(WorldMapTheme theme);

		StepInitialState withDefaultTheme();
	}

	interface StepInitialState {
		StepFinal withInitialState(DynamicViewState viewState);

		StepFinal withDefaultInitialState();
	}

	interface StepFinal {
		WorldMapView done();
	}

}
